LD3320语音识别模块与Arduino软串口通讯实现开关灯功能

您所在的位置:网站首页 arduino nano怎么读 发音 LD3320语音识别模块与Arduino软串口通讯实现开关灯功能

LD3320语音识别模块与Arduino软串口通讯实现开关灯功能

2023-11-26 14:25| 来源: 网络整理| 查看: 265

指引 写在前面设备连接部分代码总结

写在前面

这学期跟同学一起计划实现一项小制作,对最主要的LD3320语音识别模块做一个小说明,因为在我们设计的过程中,网上都有很多这种类似的文章,但是跟Arduino交互的好像还没有。成品还没做出来,毕竟要求创新,后期会考虑加一些独到的功能。都是新手,一起交流学习才能进步。该模块用Arduino实现起来较为简单,主要还是靠店家给的单片机里面代码。 另外,这篇文章仅作为参考。如有做得不足或者不对的地方,欢迎一起交流学习

设备

我们用的板子是Arduino UNO R3 ATMEGA328P,还有LD3320,这个模块买的时候内置了一个STC11L08XE单片机以及一块小的咪头,不需要外接,操作起来简单易上手。 在这里插入图片描述

连接

因为用到的是软串口通讯,用程序模拟硬串口实现通信的功能,我将数字引脚2跟3作为TX与RX LD3320—Arduino 3.3V—3.3V TXD—D3 RXD—D2 GND—GND

部分代码

前面说过,这个LD3320模块已经集成了到了一个单片机上,用店家给的keil文件可以修改代码,作为一整个库,我们不需要对整个库文件做一个了解,在初步使用的基础上,只需要知道如何使用,如何通过修改一些代码实现移植完成自己的目的就行。前面说过,这仅作为参考。

一级口令修不修改都无所谓,然后设置“开灯”作为二级口令,并回传数值1到串口,“关灯”即回传2。

main.c

void User_handle(uint8 dat) { if(0==dat) { G0_flag=ENABLE; // PrintCom("收到\r\n"); LED=0; } else if(ENABLE==G0_flag) { G0_flag=DISABLE; LED=1; switch(dat) { case CODE_1: UARTSendByte(0x01); //其实就是多了这一句代码,将识别到第一个命令 SRD1 = 1; //的时候反馈一个十六进制的1 PrintCom("1\r\n"); break; case CODE_2: UARTSendByte(0x02); //同上 SRD1 = 0; PrintCom("2\r\n"); break; ....

Arduino

#include //需要调用这个库实现串口通讯 SoftwareSerial softSerial(3,2); //新建一个softSerial对象,rx:3,tx:2 int a; //接收串口的值 void setup() { pinMode(13,OUTPUT); //设置IO口13为输出模式 Serial.begin(9600); softSerial.begin(9600); //初始化软串口通信; digitalWrite(13,LOW); //给13口低电平 delay(3000); } void loop() { a=softSerial.read(); //读取串行端口的值 switch(a) { case 1: //前面提到的读取到1表示开灯 digitalWrite(13,HIGH);//当喊“开灯”时,可以看到Arduino上的LED亮起 break; case 2: digitalWrite(13,LOW);//当喊“关灯”时,可以看到Arduino上的LED熄灭 break; default: break; } } 总结

用Arduino来实现一些小设计感觉会比51或者stm32都简单很多,Arduino集成了很多库文件,同时IDE里面还有很多人弄的开源的库文件,对于新手来说是一个不错的练习平台。

代码已上传,不用再留邮箱了 代码:点击下载



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3